热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

多种|以下内容_软件测试体系学习及构建(22)测试专项丨性能测试基本理论

篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试体系学习及构建(22)测试专项丨性能测试基本理论相关的知识,希望对你有一定的参考价值。(

篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试体系学习及构建(22)测试专项丨性能测试基本理论相关的知识,希望对你有一定的参考价值。



(22)测试专项丨性能测试基本理论


  • 1 什么是性能?
  • 2 什么是性能测试?
  • 3 都有哪些人关注性能?
  • 4 性能测试基本内容
    • 4.1 性能测试
    • 4.2 负载测试
    • 4.3 压力测试
    • 4.4 稳定性测试

  • 5 性能测试常用名词解释
  • 6 性能测试基本原理
    • 6.1 BS架构性能测试模式
    • 6.2 性能测试基本原理

  • 7 性能主要指标
  • 8 性能测试流程
  • 9 常用工具
  • 10 报告生成
  • 11 性能调优


1 什么是性能?

其中产品的性能可以理解为(内容来源于《百度百科》):


  • 性能是指产品具有适合用户要求的物理、化学或技术性能,如强度、化学成份、纯度、功率、转速等。
  • 而通常所说的产品性能,实际上是指产品的功能和质量两个方面。功能是构成竞争力的首要要素。用户购买某个产品,首先是购买它的功能,也就是实现其所需要的某种行为的能力。
  • 质最是指产品能实现其功能的程度和在使用期内功能的保持性,质量可以定义为“实现功能的程度和持久性的度量”,使它在设计中便于参数化和赋值。

另一种理解(内容来源于《辞海》):


  • 性能是用来描述机械、器材、物品所具有的速度、效率和能力的综合评价。

2 什么是性能测试?

以下内容来源于《百度百科》:


  • 性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
  • 负载测试和压力测试都属于性能测试,两者可以结合进行。
  • 通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。
  • 压力测试是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。

以下内容来源于网络博客:


  • 性能测试针对系统的性能指标,建立性能测试模型,制定性能测试方案,制定监控策略,在场景条件之下执行性能场景,分析判断性能瓶颈并调优,最终得出性能结果来评估系统的性能指标是否满足既定值。

3 都有哪些人关注性能?
关注者描述
用户通俗的讲会关注响应时间或者反应时间
测试资源的使用情况,以及资源的可扩展性
开发关注以上所有问题,同时关注内存泄漏、中间件、数据库死锁、服务器等

4 性能测试基本内容
  • 性能测试
  • 负载测试
  • 压力测试
  • 稳定性测试

4.1 性能测试

以下会引用网络上一个经典的示例:负重与跑步距离的关系。


  • 表示在给定的基准环境下,目标系统执行服务最快速度或最好表现
  • 比如:在无负重的情况下,跑100m需花多少时间?

4.2 负载测试


  • 表示目标系统正常服务的前提下,目标系统所能承担的最大服务负荷数量。
  • 比如:在负重20、30、50、100公斤…等情况下,跑100m需要多长时间?

4.3 压力测试


  • 表示在给定负载的情况下,目标系统长时间提供正确的服务系统能力;
  • 比如:在没有负重,或者负重为20公斤、50公斤…等情况下,能跑多长举例?

4.4 稳定性测试


  • 给定负载的情况下,有外界或内部非正常干扰的,系统能提供稳定服务的能力;
  • 比如:负重20公斤长跑时,不时的风、雨、坡等的出现,在这种情况下还能跑多远?

5 性能测试常用名词解释
名词解释
请求访问量发送请求压力的数量
事务衡量脚本中代码的执行所耗费的时间
场景为模拟真实用户的业务处理过程的一系列动作的集合
加载时间请求端发送预设的请求量所用时间长度
标准偏差由数理统计概念得来,标准差越小说明波动越小,反之系统不稳定
事务平均响应时间每一事务执行所用的时间,反应系统的性能走向
每秒处理事务每秒处理事务的数量(通过、失败、停止),反应系统的任务负载
吞吐率场景运行过程中服务器每秒的吞吐量
系统负载计算机系统中进程队列的大小
CPU利用率分用户态和空闲态

6 性能测试基本原理

6.1 BS架构性能测试模式


  • 前后端分离
  • BS架构


6.2 性能测试基本原理


7 性能主要指标
分类指标
性能指标每秒处理事务
性能指标事务平均响应时间
性能指标最大响应时间
性能指标最少响应时间
性能指标最大并发数
负载测试最大负载
压力测试压力强度
压力测试长时间运行最大负载
压力测试压力持续时间
系统性能监控CPU负载
系统性能监控内存使用率
系统性能监控网络IO

8 性能测试流程


9 常用工具
工具官网是否开源说明
LoadRunnerhttps://www.microfocus.com/en-us/products/loadrunner-professional/overview支持多种架构
Jmeterhttps://jmeter.apache.org/对Java支持好
Qaloadhttps://www.microfocus.com/en-us/home支持多种架构
Nmonhttp://nmon.sourceforge.net/pmwiki.php性能监控工具
。。。。。

10 报告生成

参考https://www.cnblogs.com/georgexu/p/11224141.html


11 性能调优

参考https://www.cnblogs.com/georgexu/p/11224141.html



『全栈测试技术,分享,共勉,共进,提升』








【特别说明】:知识来源于网络、各种资料、书本、网站等,本文仅用于学习使用,不做他用,如果涉及版权问题,请联系博主删除,谢谢



推荐阅读
  • 使用 ListView 浏览安卓系统中的回收站文件 ... [详细]
  • 深入解析CAS机制:全面替代传统锁的底层原理与应用
    本文深入探讨了CAS(Compare-and-Swap)机制,分析了其作为传统锁的替代方案在并发控制中的优势与原理。CAS通过原子操作确保数据的一致性,避免了传统锁带来的性能瓶颈和死锁问题。文章详细解析了CAS的工作机制,并结合实际应用场景,展示了其在高并发环境下的高效性和可靠性。 ... [详细]
  • 在最近的WWDC17大会上,苹果公司宣布了多项重要更新,其中一项是macOS High Sierra 10.13 Final的正式发布。这一版本经过优化,显著提升了系统的稳定性和响应速度,为用户在任何Mac设备上提供了更加流畅的使用体验。本文将详细介绍如何在Windows系统中利用VMware虚拟机软件安装并运行macOS High Sierra 10.13 Final,帮助用户在非苹果硬件上体验这一先进操作系统。 ... [详细]
  • 本文深入探讨了Java多线程环境下的同步机制及其应用,重点介绍了`synchronized`关键字的使用方法和原理。`synchronized`关键字主要用于确保多个线程在访问共享资源时的互斥性和原子性。通过具体示例,如在一个类中使用`synchronized`修饰方法,展示了如何实现线程安全的代码块。此外,文章还讨论了`ReentrantLock`等其他同步工具的优缺点,并提供了实际应用场景中的最佳实践。 ... [详细]
  • Python全局解释器锁(GIL)机制详解
    在Python中,线程是操作系统级别的原生线程。为了确保多线程环境下的内存安全,Python虚拟机引入了全局解释器锁(Global Interpreter Lock,简称GIL)。GIL是一种互斥锁,用于保护对解释器状态的访问,防止多个线程同时执行字节码。尽管GIL有助于简化内存管理,但它也限制了多核处理器上多线程程序的并行性能。本文将深入探讨GIL的工作原理及其对Python多线程编程的影响。 ... [详细]
  • 如何利用Java 5 Executor框架高效构建和管理线程池
    Java 5 引入了 Executor 框架,为开发人员提供了一种高效管理和构建线程池的方法。该框架通过将任务提交与任务执行分离,简化了多线程编程的复杂性。利用 Executor 框架,开发人员可以更灵活地控制线程的创建、分配和管理,从而提高服务器端应用的性能和响应能力。此外,该框架还提供了多种线程池实现,如固定线程池、缓存线程池和单线程池,以适应不同的应用场景和需求。 ... [详细]
  • 如何高效启动大数据应用之旅?
    在前一篇文章中,我探讨了大数据的定义及其与数据挖掘的区别。本文将重点介绍如何高效启动大数据应用项目,涵盖关键步骤和最佳实践,帮助读者快速踏上大数据之旅。 ... [详细]
  • 本文深入解析了JDK 8中HashMap的源代码,重点探讨了put方法的工作机制及其内部参数的设定原理。HashMap允许键和值为null,但键为null的情况只能出现一次,因为null键在内部通过索引0进行存储。文章详细分析了capacity(容量)、size(大小)、loadFactor(加载因子)以及红黑树转换阈值的设定原则,帮助读者更好地理解HashMap的高效实现和性能优化策略。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 在处理 XML 数据时,如果需要解析 `` 标签的内容,可以采用 Pull 解析方法。Pull 解析是一种高效的 XML 解析方式,适用于流式数据处理。具体实现中,可以通过 Java 的 `XmlPullParser` 或其他类似的库来逐步读取和解析 XML 文档中的 `` 元素。这样不仅能够提高解析效率,还能减少内存占用。本文将详细介绍如何使用 Pull 解析方法来提取 `` 标签的内容,并提供一个示例代码,帮助开发者快速解决问题。 ... [详细]
  • 线程能否先以安全方式获取对象,再进行非安全发布? ... [详细]
  • 利用ZFS和Gluster实现分布式存储系统的高效迁移与应用
    本文探讨了在Ubuntu 18.04系统中利用ZFS和Gluster文件系统实现分布式存储系统的高效迁移与应用。通过详细的技术分析和实践案例,展示了这两种文件系统在数据迁移、高可用性和性能优化方面的优势,为分布式存储系统的部署和管理提供了宝贵的参考。 ... [详细]
  • Cosmos生态系统为何迅速崛起,波卡作为跨链巨头应如何应对挑战?
    Cosmos生态系统为何迅速崛起,波卡作为跨链巨头应如何应对挑战? ... [详细]
  • Android中将独立SO库封装进JAR包并实现SO库的加载与调用
    在Android开发中,将独立的SO库封装进JAR包并实现其加载与调用是一个常见的需求。本文详细介绍了如何将SO库嵌入到JAR包中,并确保在外部应用调用该JAR包时能够正确加载和使用这些SO库。通过这种方式,开发者可以更方便地管理和分发包含原生代码的库文件,提高开发效率和代码复用性。文章还探讨了常见的问题及其解决方案,帮助开发者避免在实际应用中遇到的坑。 ... [详细]
  • 本文深入解析了Java 8并发编程中的`AtomicInteger`类,详细探讨了其源码实现和应用场景。`AtomicInteger`通过硬件级别的原子操作,确保了整型变量在多线程环境下的安全性和高效性,避免了传统加锁方式带来的性能开销。文章不仅剖析了`AtomicInteger`的内部机制,还结合实际案例展示了其在并发编程中的优势和使用技巧。 ... [详细]
author-avatar
手机用户2502917943
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有